package com.itdct.onflow.core.annotation

import com.itdct.onflow.core.constant.DataPermissionEnum
import com.itdct.onflow.core.constant.TableEngineConst

/**
 * @author Zhouwx
 * @date 2025/7/8 23:04:49
 * @version 1.0
 * @description 表描述，用于生成建表语句，最行一行的内容
 */
@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.RUNTIME)
@MustBeDocumented
annotation class TableDescription(
    /**
     * 表注释信息
     */
    val value: String = "",

    /**
     * 数据库引擎
     */
    val engine: String = TableEngineConst.InnoDB,

    /**
     * 自增字段初始值
     */
    val autoIncrement: Long = 1L,

    /**
     * 字符集
     */
    val charset: String = "utf8mb4",

    /**
     * 排序规则
     */
    val collate: String = "utf8mb4_general_ci",

    /**
     * 是否自动同步字段信息
     */
    val autoSync: Boolean = true,

    /**
     * 数据库表名缩写，用于查询中使用，默认为表名单个首字母组成，如：user_info缩写为ui
     */
    val tableNameAbbr: String = "",

    /**
     * 数据权限
     */
    val dataPermission: DataPermissionEnum = DataPermissionEnum.NONE
)

